<html>
<head><meta charset="utf-8"><title>Skill tree · t-compiler/const-eval · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/index.html">t-compiler/const-eval</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html">Skill tree</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="196242568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196242568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196242568">(May 04 2020 at 21:31)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span>, <span class="user-mention silent" data-user-id="116009">nikomatsakis</span> mentioned that he would like to see a <a href="https://rust-lang.github.io/wg-traits/roadmap/skill-tree.html" title="https://rust-lang.github.io/wg-traits/roadmap/skill-tree.html">skill tree</a> for const-eval features. I think I have enough information to get started, but would greatly benefit from your help and/or input.</p>



<a name="196242695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196242695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196242695">(May 04 2020 at 21:33)</a>:</h4>
<p>Here's the old stream where I mentioned some future stuff that I was interested in. <a href="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Project.20ideas/near/183590338" title="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Project.20ideas/near/183590338">https://rust-lang.zulipchat.com/#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Project.20ideas/near/183590338</a></p>



<a name="196242754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196242754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196242754">(May 04 2020 at 21:34)</a>:</h4>
<p>I really need to suck it up and finish  the initial implementation of <a href="https://github.com/rust-lang/rfcs/issues/2632" title="https://github.com/rust-lang/rfcs/issues/2632">rust-lang/rfcs#2632</a> XD</p>



<a name="196301882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196301882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196301882">(May 05 2020 at 12:43)</a>:</h4>
<p>lol wow, that's a great idea to visualize features</p>



<a name="196302101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196302101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196302101">(May 05 2020 at 12:45)</a>:</h4>
<p>starting now: <a href="https://hackmd.io/@oli-obk/const_eval-skill_tree" title="https://hackmd.io/@oli-obk/const_eval-skill_tree">https://hackmd.io/@oli-obk/const_eval-skill_tree</a></p>



<a name="196315795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196315795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Christian Poveda <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196315795">(May 05 2020 at 14:32)</a>:</h4>
<p>that looks pretty cool</p>



<a name="196354612"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196354612" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196354612">(May 05 2020 at 19:27)</a>:</h4>
<p>Awesome!!! Thanks <span class="user-mention silent" data-user-id="124288">oli</span></p>



<a name="196359129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196359129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196359129">(May 05 2020 at 19:59)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> maybe once you feel good about the state of this, ping me? I'd like to read it over and throw questions your way</p>



<a name="196360756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196360756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196360756">(May 05 2020 at 20:11)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> I should have mentioned this earlier but <span class="user-mention silent" data-user-id="116009">nikomatsakis</span>  has a repo for generating these from TOML files: <a href="https://github.com/nikomatsakis/skill-tree" title="https://github.com/nikomatsakis/skill-tree">https://github.com/nikomatsakis/skill-tree</a></p>



<a name="196360849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196360849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196360849">(May 05 2020 at 20:12)</a>:</h4>
<p>I believe that's how <a href="https://rust-lang.github.io/wg-traits/roadmap/skill-tree.html" title="https://rust-lang.github.io/wg-traits/roadmap/skill-tree.html">this skill tree</a> was rendered.</p>



<a name="196594044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196594044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196594044">(May 06 2020 at 06:59)</a>:</h4>
<p>ah neat</p>



<a name="196594057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196594057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196594057">(May 06 2020 at 06:59)</a>:</h4>
<p>I'll move to the skill-tree crate then</p>



<a name="196691648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196691648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196691648">(May 06 2020 at 20:21)</a>:</h4>
<p>should "figure out unconst story" be a bubble somewhere in that skill tree? :D</p>



<a name="196737780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196737780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196737780">(May 07 2020 at 08:03)</a>:</h4>
<p>it is!</p>



<a name="196737790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196737790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196737790">(May 07 2020 at 08:03)</a>:</h4>
<p>or are you asking whether it should not be in there?</p>



<a name="196746093"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196746093" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196746093">(May 07 2020 at 09:29)</a>:</h4>
<p>ah there it is, next to transmute. isn't there also a "raw ptr in const" feature?</p>



<a name="196746097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196746097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196746097">(May 07 2020 at 09:29)</a>:</h4>
<p>also, union field accesses</p>



<a name="196746110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196746110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196746110">(May 07 2020 at 09:29)</a>:</h4>
<p>and comparing raw ptrs maybe could have a bubble "POINTER EQUALITY IS SCARY GO AWAY" or so :D</p>



<a name="196746204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196746204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196746204">(May 07 2020 at 09:30)</a>:</h4>
<p>I'd rather not allow that in CTFE until we figured out more how to handle raw ptrs in patterns / const generics</p>



<a name="196752229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196752229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196752229">(May 07 2020 at 10:33)</a>:</h4>
<p>it's not finished yet!!</p>



<a name="196752255"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196752255" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196752255">(May 07 2020 at 10:33)</a>:</h4>
<p>yea, raw pointers are a pain</p>



<a name="196867509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/196867509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#196867509">(May 08 2020 at 07:59)</a>:</h4>
<p><span class="user-mention silent" data-user-id="124288">oli</span> <a href="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Skill.20tree/near/196752229" title="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Skill.20tree/near/196752229">said</a>:</p>
<blockquote>
<p>it's not finished yet!!</p>
</blockquote>
<p>sure, just leaving notes for when you get back to it :)</p>



<a name="197749792"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/197749792" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#197749792">(May 15 2020 at 20:40)</a>:</h4>
<p>Current status: <a href="https://github.com/rust-lang/const-eval/pull/43">https://github.com/rust-lang/const-eval/pull/43</a></p>



<a name="200439457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/200439457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#200439457">(Jun 10 2020 at 16:18)</a>:</h4>
<p>As stuff is stabilized, does it change color or get removed or...?</p>



<a name="200439558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/200439558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#200439558">(Jun 10 2020 at 16:19)</a>:</h4>
<p>I don't think the skill tree software has support for "this is stabilized", so imo we should just remove those nodes</p>



<a name="200440163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/200440163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#200440163">(Jun 10 2020 at 16:23)</a>:</h4>
<p>A reasonable compromise, but ultimately less impressive. Gotta see the hundreds of nodes you’ve already done. 😏</p>



<a name="200479368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/200479368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#200479368">(Jun 10 2020 at 21:28)</a>:</h4>
<p>Hahahahaha ^^^</p>



<a name="205150231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205150231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205150231">(Jul 27 2020 at 18:15)</a>:</h4>
<p><span class="user-mention" data-user-id="239881">@Josh Triplett</span> for the "what would it take" style questions, I've been pointed towards the skill tree in the past: <a href="https://static.turbo.fish/const-eval-skill-tree/skill-tree.html">https://static.turbo.fish/const-eval-skill-tree/skill-tree.html</a></p>



<a name="205150358"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205150358" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205150358">(Jul 27 2020 at 18:16)</a>:</h4>
<p>I was on the call where that was presented. :)</p>



<a name="205150415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205150415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205150415">(Jul 27 2020 at 18:17)</a>:</h4>
<p>I guess it must not cover what you want then. Sorry, I'll try to stop repeating knowledge you already know.</p>



<a name="205151118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205151118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205151118">(Jul 27 2020 at 18:23)</a>:</h4>
<p>No, I appreciate the reminder, and it was entirely appropriate. :)</p>



<a name="205151949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205151949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205151949">(Jul 27 2020 at 18:30)</a>:</h4>
<p>It just didn't tell me whether, for instance, <code>&amp;'static str</code> needed all the same dependencies as "String operations".</p>



<a name="205366346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205366346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205366346">(Jul 29 2020 at 14:47)</a>:</h4>
<p><span class="user-mention silent" data-user-id="124288">oli</span> <a href="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Skill.20tree/near/200439558">said</a>:</p>
<blockquote>
<p>I don't think the skill tree software has support for "this is stabilized", so imo we should just remove those nodes</p>
</blockquote>
<p>it does have a "Status"</p>



<a name="205574169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205574169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205574169">(Jul 31 2020 at 09:43)</a>:</h4>
<p><span class="user-mention silent" data-user-id="239881">Josh Triplett</span> <a href="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Skill.20tree/near/205151949">said</a>:</p>
<blockquote>
<p>It just didn't tell me whether, for instance, <code>&amp;'static str</code> needed all the same dependencies as "String operations".</p>
</blockquote>
<p>I guess the question is what you want to to with <code>&amp;'static str</code></p>



<a name="205574177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205574177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205574177">(Jul 31 2020 at 09:43)</a>:</h4>
<p>I dont see any problems with string literals</p>



<a name="205654340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205654340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205654340">(Aug 01 2020 at 00:12)</a>:</h4>
<p><span class="user-mention silent" data-user-id="120791">RalfJ</span> <a href="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Skill.20tree/near/205574169">said</a>:</p>
<blockquote>
<p><span class="user-mention silent" data-user-id="239881">Josh Triplett</span> <a href="#narrow/stream/146212-t-compiler.2Fconst-eval/topic/Skill.20tree/near/205151949">said</a>:</p>
<blockquote>
<p>It just didn't tell me whether, for instance, <code>&amp;'static str</code> needed all the same dependencies as "String operations".</p>
</blockquote>
<p>I guess the question is what you want to to with <code>&amp;'static str</code></p>
</blockquote>
<p>I wanted to create a <code>const</code> <code>&amp;'static str</code> by concatenating other <code>const</code> <code>&amp;'static str</code>s, not just string literals.</p>



<a name="205654456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205654456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Josh Triplett <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205654456">(Aug 01 2020 at 00:15)</a>:</h4>
<p>I had two use cases for it. One was that I had several const strings, and needed to construct a string of the form <code>thing1={},thing2={},thing3={}</code> to pass to something else. I didn't mind turning that into a concatenation rather than a full format, but I did want the string to be constant. The other involved needing both a basename and a path, and wanting to have both of those as constants.</p>



<a name="205664574"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205664574" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205664574">(Aug 01 2020 at 04:55)</a>:</h4>
<p>note that format strings need <em>syntactical</em> strings, no amount of const eval can ever teach format strings to be able to use constants. What would be needed for that feature would be querified name resolution, which idk if it's even possible.</p>



<a name="205739440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739440">(Aug 02 2020 at 19:00)</a>:</h4>
<p>Wait, if I'm understanding this correctly, we're talking about the use case:<br>
<code>const foo : &amp;'static str = format!("{}", "bar");</code><br>
Right?</p>



<a name="205739465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739465">(Aug 02 2020 at 19:01)</a>:</h4>
<p>Why can't this happen in const eval?</p>



<a name="205739481"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739481" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739481">(Aug 02 2020 at 19:01)</a>:</h4>
<p>I'm guessing that maybe macros resolve after const eval?</p>



<a name="205739526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739526">(Aug 02 2020 at 19:02)</a>:</h4>
<p>Ah no wait</p>



<a name="205739535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739535">(Aug 02 2020 at 19:02)</a>:</h4>
<p>You need to resolve the format string <em>and then the macro</em></p>



<a name="205739553"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739553" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739553">(Aug 02 2020 at 19:03)</a>:</h4>
<p>The format string is a constant</p>



<a name="205739557"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739557" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739557">(Aug 02 2020 at 19:03)</a>:</h4>
<p>So you resolve it first and then go for the macro</p>



<a name="205739565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739565">(Aug 02 2020 at 19:03)</a>:</h4>
<p>And only <em>after all of that</em></p>



<a name="205739573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739573">(Aug 02 2020 at 19:03)</a>:</h4>
<p>You can resolve the formatted string</p>



<a name="205739630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739630">(Aug 02 2020 at 19:04)</a>:</h4>
<p>Which would mean that const eval would need to happen twice</p>



<a name="205739636"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739636" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739636">(Aug 02 2020 at 19:04)</a>:</h4>
<p>Or thrice, or any number of times, until a fixed point</p>



<a name="205739641"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739641" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739641">(Aug 02 2020 at 19:04)</a>:</h4>
<p>Is that the issue, <span class="user-mention" data-user-id="124288">@oli</span>?</p>



<a name="205739643"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739643" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739643">(Aug 02 2020 at 19:04)</a>:</h4>
<p>if const eval gets strong enough, can't we check the argument count during const eval?</p>



<a name="205739664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739664">(Aug 02 2020 at 19:05)</a>:</h4>
<p>we will never support <code>format!("{name}")</code> using const eval though</p>



<a name="205739665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739665">(Aug 02 2020 at 19:05)</a>:</h4>
<p>at least I don't see how</p>



<a name="205739794"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739794" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739794">(Aug 02 2020 at 19:08)</a>:</h4>
<p>You mean like<br>
<code>format!("{}", name);</code>?</p>



<a name="205739806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739806">(Aug 02 2020 at 19:08)</a>:</h4>
<p>(Or is <code>format!("{name}")</code> legal? I'd never seen that syntax x3)</p>



<a name="205739808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739808">(Aug 02 2020 at 19:09)</a>:</h4>
<p>no,I mean <a href="https://github.com/rust-lang/rust/issues/67984">https://github.com/rust-lang/rust/issues/67984</a></p>



<a name="205739814"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739814" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739814">(Aug 02 2020 at 19:09)</a>:</h4>
<p>which is accepted, but not yet implemented afaik</p>



<a name="205739874"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739874" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739874">(Aug 02 2020 at 19:10)</a>:</h4>
<p>Holy fuck, that is some wizardry</p>



<a name="205739880"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739880" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739880">(Aug 02 2020 at 19:10)</a>:</h4>
<p>Can you do that with macros?</p>



<a name="205739884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739884">(Aug 02 2020 at 19:10)</a>:</h4>
<p>You can't, right?</p>



<a name="205739890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739890">(Aug 02 2020 at 19:10)</a>:</h4>
<p>Not with macro_rules</p>



<a name="205739891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739891">(Aug 02 2020 at 19:10)</a>:</h4>
<p>yeah</p>



<a name="205739896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739896">(Aug 02 2020 at 19:10)</a>:</h4>
<p>Kay</p>



<a name="205739898"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739898" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739898">(Aug 02 2020 at 19:10)</a>:</h4>
<p>you have to look into string literals here</p>



<a name="205739914"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739914" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739914">(Aug 02 2020 at 19:11)</a>:</h4>
<p>Yeah, that... that seems very magical, dunno how that would fit into const eval</p>



<a name="205739987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739987">(Aug 02 2020 at 19:13)</a>:</h4>
<p>Like the current <code>format!</code> macro, I mean I can see how you'd implement it (it is definitely harder than how I am painting it because this is a big simplification): do const eval, do macro res, do const eval, macro res, etc up to a fixed point (probably with a repetition limit because it could be turing complete?) and then you're off to the races</p>



<a name="205739994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739994">(Aug 02 2020 at 19:13)</a>:</h4>
<p>But this one? Ehh... it escapes me</p>



<a name="205739995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205739995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205739995">(Aug 02 2020 at 19:13)</a>:</h4>
<p>At least it escapes current me</p>



<a name="205740202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740202">(Aug 02 2020 at 19:18)</a>:</h4>
<p>I don't even think we need the macro res &lt;-&gt; const eval loop here</p>



<a name="205740238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740238">(Aug 02 2020 at 19:19)</a>:</h4>
<p>we could use a type level list as an input and only check if the inputs line up with the fmt string</p>



<a name="205740280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740280">(Aug 02 2020 at 19:20)</a>:</h4>
<p>i don't yet get why we would need another macro expansion afterwards</p>



<a name="205740291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740291">(Aug 02 2020 at 19:20)</a>:</h4>
<p>Because you could make a format string that depended on a macro</p>



<a name="205740300"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740300" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740300">(Aug 02 2020 at 19:20)</a>:</h4>
<p>At least that's how I was thinking about it. No idea if the system bypasses that use case or plainly just rejects it</p>



<a name="205740302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740302">(Aug 02 2020 at 19:21)</a>:</h4>
<p>do you have an example of what you mean here</p>



<a name="205740306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740306">(Aug 02 2020 at 19:21)</a>:</h4>
<p>Yas</p>



<a name="205740310"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740310" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740310">(Aug 02 2020 at 19:21)</a>:</h4>
<p>One sec</p>



<a name="205740359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740359">(Aug 02 2020 at 19:22)</a>:</h4>
<p><code>format!(format!("{}, {}", foo(), bar()), baz())</code></p>



<a name="205740362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740362">(Aug 02 2020 at 19:22)</a>:</h4>
<p>So with <code>foo</code> and <code>bar</code> you create the second format string</p>



<a name="205740365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740365">(Aug 02 2020 at 19:22)</a>:</h4>
<p>They are const fns, of course</p>



<a name="205740367"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740367" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740367">(Aug 02 2020 at 19:23)</a>:</h4>
<p>yeah, I think that would work with what I have in mind</p>



<a name="205740370"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740370" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740370">(Aug 02 2020 at 19:23)</a>:</h4>
<p>Ohh, sweet :3</p>



<a name="205740374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740374">(Aug 02 2020 at 19:23)</a>:</h4>
<p>Because the arguments to the outer format will always be just <code>baz()</code></p>



<a name="205740378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740378">(Aug 02 2020 at 19:23)</a>:</h4>
<p>but yeah, I am not sure if we will ever do this <span aria-label="laughter tears" class="emoji emoji-1f602" role="img" title="laughter tears">:laughter_tears:</span></p>



<a name="205740448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740448">(Aug 02 2020 at 19:25)</a>:</h4>
<p>(Tangent: I am still thinking about that magic format macro. Naming variables in a string... doesn't that remind you of reflection? It reminds me of the times I'd encountered reflection in C#, where you looked and pointed at the program from the program itself...)</p>



<a name="205740500"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740500" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740500">(Aug 02 2020 at 19:26)</a>:</h4>
<p>we are only looking at variable names here, not types (so the format macro still works during macro expansion)</p>



<a name="205740503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740503">(Aug 02 2020 at 19:26)</a>:</h4>
<p>Ohh</p>



<a name="205740505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740505">(Aug 02 2020 at 19:26)</a>:</h4>
<p>It very clever magic :D</p>



<a name="205740539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740539">(Aug 02 2020 at 19:28)</a>:</h4>
<p>Well, the thing that you mentioned, maybe we'll implement that in the far future</p>



<a name="205740562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740562">(Aug 02 2020 at 19:28)</a>:</h4>
<p>Whenever Rust is settled-ish</p>



<a name="205740564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740564">(Aug 02 2020 at 19:28)</a>:</h4>
<p>And we wanna go for fruits that are hanging way up above</p>



<a name="205740566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/205740566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Félix Fischer <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#205740566">(Aug 02 2020 at 19:28)</a>:</h4>
<p>:3</p>



<a name="215080847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/215080847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#215080847">(Oct 30 2020 at 11:13)</a>:</h4>
<p>I am now starting the blog post (as per <a href="https://github.com/nikomatsakis/lang-team/blob/master/design-meeting-minutes/2020-06-24-const-eval-unsafe-and-skill-tree.md">https://github.com/nikomatsakis/lang-team/blob/master/design-meeting-minutes/2020-06-24-const-eval-unsafe-and-skill-tree.md</a>) in <a href="https://hackmd.io/7Rs5q0h4TImeOGbv9NYxcQ">https://hackmd.io/7Rs5q0h4TImeOGbv9NYxcQ</a></p>



<a name="215084437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/215084437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#215084437">(Oct 30 2020 at 11:55)</a>:</h4>
<p>and a PR is up: <a href="https://github.com/rust-lang/blog.rust-lang.org/pull/719">https://github.com/rust-lang/blog.rust-lang.org/pull/719</a></p>



<a name="215084971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/215084971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#215084971">(Oct 30 2020 at 12:02)</a>:</h4>
<p>I think the blog expects to have the md file with a known header</p>



<a name="215085039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/Skill%20tree/near/215085039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/Skill.20tree.html#215085039">(Oct 30 2020 at 12:03)</a>:</h4>
<p>like the first few lines of <a href="https://raw.githubusercontent.com/rust-lang/blog.rust-lang.org/master/posts/inside-rust/2020-10-23-Core-team-membership.md">https://raw.githubusercontent.com/rust-lang/blog.rust-lang.org/master/posts/inside-rust/2020-10-23-Core-team-membership.md</a></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>